package Both;

/**
 * Polytech' Nice - Sophia Antipolis / SI3 / Projet de fin de semestre
 * Annee 2011_2012
 * 
 * Reservation de transports en commun
 * 
 * Package Both
 * 
 * Enum TypeBillet : definit tous les type de billets disponibles et definit 
 *                   pour chaque type un coefficient a appliquer au prix du billet
 * 
 * @author J. Harnetiaux
 */

import java.io.Serializable;

public enum TypeBillet implements Serializable {
    REMBOURSABLE(1.5), NON_REMBOURSABLE(1), SOUS_CONDITIONS(1.1);

    private static final double COEFF_REMBOURSABLE = TypeBillet.REMBOURSABLE
            .getType();
    private static final double COEFF_NON_REMBOURSABLE = TypeBillet.NON_REMBOURSABLE
            .getType();
    private static final double COEFF_SOUS_CONDITIONS = TypeBillet.SOUS_CONDITIONS
            .getType();

    private Double type;

    /**
     * Constructeur normal
     * 
     * @param type
     *            valeur du coefficient multiplicateur correspondant au type du
     *            billet a appliquer a son prix
     */
    TypeBillet(double type) {
        this.type = type;
    }

    /**
     * Surcharge de toString
     */
    @Override
    public String toString() {
        if (type == COEFF_REMBOURSABLE)
            return "modifiable";
        else if (type == COEFF_NON_REMBOURSABLE)
            return "non modifiable";
        else if (type == COEFF_SOUS_CONDITIONS)
            return "modifiable sous conditions";
        else
            return "Type de billet non definit";
    }

    /**
     * retourne le type du billet
     * 
     * @return le type du billet
     */
    public double getType() {
        return type;
    }
}
